import Vue from 'vue'

// base.css样式初始化 + 样式兼容
import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import ElementUI from 'element-ui'
// 导入组件库样式
import 'element-ui/lib/theme-chalk/index.css'
// 导入一个语言包 英文包 用于中英切换
import locale from 'element-ui/lib/locale/lang/zh-CN' // lang i18n
import i18n from '@/lang'

// 配置ElementUI的中英切换逻辑
Vue.use(ElementUI, {
  i18n: (key, value) => i18n.t(key, value)
})

// 引入全局样式
import '@/styles/index.scss' // global css

// 换肤
// import '@/styles/element-variables.scss' // global css

import App from './App'
import store from './store'
import router from './router'

// 引入icon模块 直接执行
import '@/icons' // icon
// 导入js文件并且直接执行
import '@/permission' // permission control

import component from './components'
Vue.use(component)

// 导入打印的插件
import print from 'vue-print-nb'
// install内部帮你注册了一个全局的自定义指令 v-print
Vue.use(print)

import * as filters from './filters'
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})
// 有后端接口, 不需要mock: 1.main.js相关代码 2.mock文件夹 3.vue.config.js 39行 => 重启
// if (process.env.NODE_ENV === 'production') {
//   const { mockXHR } = require('../mock')
//   mockXHR()
// }
import * as directives from '@/directives'
Object.keys(directives).forEach((key) => {
  Vue.directive(key, directives[key])
})

// 安装组件库且英文包
Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
// Vue.use(ElementUI)

// 关闭生成提示
Vue.config.productionTip = false

new Vue({
  // el: '#app', 老写法
  i18n,
  router,
  store,
  render: h => h(App)
}).$mount('#app')
